---
title: SAIF.Services.Imaging.Import architecture
summary: Architectural responsibilities, boundaries, and interaction patterns for the imaging-import metadata model library.
status: draft
owner: SAIF Claims BOF team
last_reviewed: 2026-08-21
library: SAIF.Services.Imaging.Import
reference_type: embedded
---

# SAIF.Services.Imaging.Import architecture

`SAIF.Services.Imaging.Import` is a Component-tier library* consisting of a single serializable data-transfer object, `clsImageImport`, that models the metadata needed to import/index a document image (plus related task and legal-case linkage) into the OnBase imaging system.* It contains no I/O, no data access, and no service calls — its only executable logic is a `ToString()` serializer consumed by calling libraries.

## Responsibilities
- Model batch/document identity, claim/policy linkage, agency/producer linkage, legal-case linkage, document metadata, task/workflow metadata, and audit/system fields relevant to an imaging-import job, via public auto-implemented properties on `clsImageImport`.
- Expose named OnBase document type/sub-type classification constants (`UseOnBaseDocTypes`, `OnBaseType*`, `OnBaseSubType*`) for callers to reference when populating type/sub-type properties.*
- Serialize the populated instance to a flat, newline-delimited `KEY=VALUE` text payload via `ToString()`, applying blank-out formatting rules for unset date and non-positive numeric defaults ([BR-IMG-001](business-rules.md#br-img-001-blank-out-unset-date-values-in-serialized-output), [BR-IMG-002](business-rules.md#br-img-002-blank-out-non-positive-numeric-defaults-in-serialized-output)).

## Component boundaries
- **`clsImageImport`**: the library's sole public type — a `<Serializable()>` plain data holder with no constructors beyond the implicit parameterless one, no interfaces, no events, and no shared/static members.* It owns only in-memory state and string-formatting logic; it performs no persistence, transport, or validation beyond its own `ToString()` output shaping.
- No other components exist in this library; there are no subfolders, no additional compiled source files, and no internal project references.*

## Interaction model
- A calling library (currently `SAIF.Services.Printing`, via `clsPrint.vb`'s `m_ImportInfo As clsImageImport` field) constructs a `clsImageImport` instance, populates its properties, and calls `.ToString()` to obtain a `KEY=VALUE\r\n`-delimited text payload.*
- The `Legal` web application references this assembly at the project level, but no direct source-level usage of `clsImageImport` was found within the `Legal` tree during Stage 1 analysis.**
- The class itself never writes, transmits, or persists the serialized payload — producing and delivering it to the external imaging system (presumed OnBase, based on constant naming) is entirely the responsibility of the calling library.*

## Design constraints
- `clsImageImport` performs no validation of its own property values; the only conditional logic in the class is the blank-out formatting inside `ToString()` for date and non-positive numeric fields ([BR-IMG-001](business-rules.md#br-img-001-blank-out-unset-date-values-in-serialized-output), [BR-IMG-002](business-rules.md#br-img-002-blank-out-non-positive-numeric-defaults-in-serialized-output)).
- The `.vbproj` declares references to `SAIF.BOF.Framework.*`, `Oracle.ManagedDataAccess`, `RestSharp`, `Newtonsoft.Json`, and related packages, but none are used by the sole source file — these are declared-but-dormant build dependencies, not architectural coupling.*
- The class has no dependency on any other internal SAIF library at the source level despite declaring several as build references.*
- The exact external system that consumes the `ToString()`-serialized payload is inferred from constant naming only (`OnBase*`) and was not confirmed via a receiving integration point within this library's scope.*

## Architecture diagram
The following diagram shows the library's single component and its known external collaborators.

```mermaid
flowchart TD
	Caller["SAIF.Services.Printing<br>clsPrint (external, holds m_ImportInfo)"] --> CII["clsImageImport<br>(this library)"]
	LegalApp["Legal web application<br>(project-level reference only)"] -.-> CII
	CII --> Payload["KEY=VALUE text payload<br>(produced by ToString())"]
	Payload --> OnBase["External imaging system<br>(presumed OnBase, inferred from constants)"]
```

## Sequence diagram
The following diagram shows the primary populate/serialize sequence used by a calling library.

```mermaid
sequenceDiagram
	participant Caller as Calling library (e.g. SAIF.Services.Printing)
	participant CII as clsImageImport
	Caller->>CII: New clsImageImport()
	Caller->>CII: Set properties (BatID, ClaimID, ImageDocumentTypeCode, and other fields)
	Caller->>CII: ToString()
	CII->>CII: Append KEY=VALUE lines,<br>blank out unset dates/non-positive numbers
	CII-->>Caller: KEY=VALUE text payload
	Caller-->>Caller: Deliver payload to external imaging system (out of scope)
```

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [API reference](api/index.md)

> **Note:** Statements marked with * were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts. Statements
> marked with ** could not be confirmed; treat as unknown until verified.

## Sources
- `SAIF.Services.Imaging.Import\clsImageImport.vb`
- `SAIF.Services.Imaging.Import\SAIF.Services.Imaging.Import.vbproj`
- `SAIF.Services.Imaging.Import\AssemblyInfo.vb`
- `SAIF.Services.Printing\clsPrint.vb`
- `Legal\Legal.vbproj`
- `.saifdocgen\state\runs\20260821-113120-claims-bof-web-legal\analysis\TSK010-analysis.md`
